package com.easy.mapper;

import com.easy.bean.Customer;
import com.easy.util.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface CustomerDao {

    /**
     * 添加客户
     * @param customer 客户对象
     * @return 影响的行数
     */
    int add(@Param("param") Customer customer);

    /**
     * 删除客户(逻辑删除)
     * @param id 客户ID
     * @return 影响的行数
     */
    int del(@Param("id") Integer id);

    /**
     * 编辑客户信息
     * @param customer 客户对象
     * @return 影响的行数
     */
    int edit(@Param("param") Customer customer);

    /**
     * 查询所有客户(带条件)
     * @param customer 查询条件
     * @return 客户列表
     */
    List<Customer> all(@Param("param") Customer customer);

    /**
     * 根据ID查询单个客户
     * @param id 客户ID
     * @return 客户对象
     */
    Customer one(@Param("id") Integer id);

    /**
     * 查询客户总数(分页用)
     * @param customer 查询条件
     * @return 客户总数
     */
    int pageCount(@Param("param") Customer customer);

    /**
     * 分页查询客户
     * @param page 分页参数
     * @param customer 查询条件
     * @return 客户列表
     */
    List<Customer> page(@Param("page") Page page, @Param("param") Customer customer);


    Customer getByPhone(@Param("phone") String phone);
}
